package com.ruoyi.weixin.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;
import java.util.List;

/**
 * 客户对象 wx_client
 * 
 * @author cloudoer
 * @date 2019-09-03
 */
public class Client extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    public Client(){}

    public Client(String id){
        this.clientId = id;
    }

    /** id */
    private String clientId;

    /** openid */
    @Excel(name = "openid")
    private String openId;

    /** unionid */
    @Excel(name = "unionid")
    private String unionId;

    /** 性别 0：未知、1：男、2：女 */
    @Excel(name = "性别 0：未知、1：男、2：女")
    private String gender;

    /** 城市 */
    @Excel(name = "城市")
    private String city;

    /** 省 */
    @Excel(name = "省")
    private String province;

    /** 区县 */
    @Excel(name = "区县")
    private String conuntry;

    /** 头像 */
    @Excel(name = "头像")
    private String avatarUrl;

    /** 用户名 */
    @Excel(name = "用户名")
    private String nickName;

    /** 电话 */
    @Excel(name = "邮箱")
    private String email;

    /** 电话 */
    @Excel(name = "电话")
    private String phone;

    /** 登录密码 */
    private String loginPad;

    /** 加入的日期 */
    @Excel(name = "加入的日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd", locale="zh", timezone="GMT+8")
    private Date joinDate;

    /** 生日 */
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd", locale="zh", timezone="GMT+8")
    private Date birthday;

    /** 状态 */
    @Excel(name = "状态")
    private String state;

    /** 支付密码 */
    @Excel(name = "支付密码")
    private String buyPad;

    /** 等级 */
    @Excel(name = "等级")
    private Long gradeId;

    /** 钱 */
    @Excel(name = "钱")
    private Long money;

    /** 积分 */
    @Excel(name = "积分")
    private Long integral;

    /** 积分a */
    @Excel(name = "积分a")
    private Long integralA;

    /** 积分b */
    @Excel(name = "积分b")
    private Long integralB;

    /** 积分c */
    @Excel(name = "积分c")
    private Long integralC;

    /** 已使用的金额 */
    @Excel(name = "已使用的金额")
    private Long useMoney;

    /** 充值金额 */
    @Excel(name = "充值金额")
    private Long investMoney;



    /**
     * 收件地址信息
     */
    private List<Address> addresses;

    /**
     * 等级
     */
    private Grade grade;

    public Grade getGrade() {
        return grade;
    }

    public void setGrade(Grade grade) {
        this.grade = grade;
    }

    public void setClientId(String clientId)
    {
        this.clientId = clientId;
    }

    public String getClientId() 
    {
        return clientId;
    }
    public void setOpenId(String openId) 
    {
        this.openId = openId;
    }

    public String getOpenId() 
    {
        return openId;
    }
    public void setUnionId(String unionId) 
    {
        this.unionId = unionId;
    }

    public String getUnionId() 
    {
        return unionId;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setConuntry(String conuntry) 
    {
        this.conuntry = conuntry;
    }

    public String getConuntry() 
    {
        return conuntry;
    }
    public void setAvatarUrl(String avatarUrl) 
    {
        this.avatarUrl = avatarUrl;
    }

    public String getAvatarUrl() 
    {
        return avatarUrl;
    }
    public void setNickName(String nickName) 
    {
        this.nickName = nickName;
    }

    public String getNickName() 
    {
        return nickName;
    }
    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getEmail()
    {
        return email;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setLoginPad(String loginPad) 
    {
        this.loginPad = loginPad;
    }

    public String getLoginPad() 
    {
        return loginPad;
    }
    public void setJoinDate(Date joinDate)
    {
        this.joinDate = joinDate;
    }

    public Date getJoinDate()
    {
        return joinDate;
    }
    public void setBirthday(Date birthday)
    {
        this.birthday = birthday;
    }

    public Date getBirthday()
    {
        return birthday;
    }
    public void setState(String state)
    {
        this.state = state;
    }

    public void setBuyPad(String buyPad)
    {
        this.buyPad = buyPad;
    }

    public String getBuyPad()
    {
        return buyPad;
    }
    public void setGradeId(Long gradeId)
    {
        this.gradeId = gradeId;
    }

    public Long getGradeId()
    {
        return gradeId;
    }
    public void setMoney(Long money)
    {
        this.money = money;
    }

    public Long getMoney()
    {
        return money;
    }
    public void setIntegral(Long integral)
    {
        this.integral = integral;
    }

    public Long getIntegral()
    {
        return integral;
    }
    public void setIntegralA(Long integralA)
    {
        this.integralA = integralA;
    }

    public Long getIntegralA()
    {
        return integralA;
    }
    public void setIntegralB(Long integralB)
    {
        this.integralB = integralB;
    }

    public Long getIntegralB()
    {
        return integralB;
    }
    public void setIntegralC(Long integralC)
    {
        this.integralC = integralC;
    }

    public Long getIntegralC()
    {
        return integralC;
    }
    public void setUseMoney(Long useMoney)
    {
        this.useMoney = useMoney;
    }

    public Long getUseMoney()
    {
        return useMoney;
    }
    public void setInvestMoney(Long investMoney)
    {
        this.investMoney = investMoney;
    }

    public Long getInvestMoney()
    {
        return investMoney;
    }
    public String getState()
    {
        return state;
    }

    public List<Address> getAddresses() {
        return addresses;
    }

    public void setAddresses(List<Address> addresses) {
        this.addresses = addresses;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("clientId", getClientId())
            .append("openId", getOpenId())
            .append("unionId", getUnionId())
            .append("gender", getGender())
            .append("city", getCity())
            .append("province", getProvince())
            .append("conuntry", getConuntry())
            .append("avatarUrl", getAvatarUrl())
            .append("nickName", getNickName())
            .append("email", getEmail())
            .append("phone", getPhone())
            .append("loginPad", getLoginPad())
            .append("joinDate", getJoinDate())
                .append("birthday", getBirthday())
                .append("state", getState())
                .append("buyPad", getBuyPad())
                .append("gradeId", getGradeId())
                .append("money", getMoney())
                .append("integral", getIntegral())
                .append("integralA", getIntegralA())
                .append("integralB", getIntegralB())
                .append("integralC", getIntegralC())
                .append("useMoney", getUseMoney())
                .append("investMoney", getInvestMoney())
            .toString();
    }
}
